﻿using System;
using System.Collections;
using System.Windows.Forms;
using BLL_NhaSach;
using DevExpress.XtraEditors;

namespace AppQlyNhaSach.TheLoai
{
    public partial class frmTheLoai : DevExpress.XtraEditors.XtraForm, IDataGrid
    {
        private TheLoaiBLL tlBLL;

        public frmTheLoai()
        {
            InitializeComponent();
        }

        private void frmTheLoai_Load(object sender, EventArgs e)
        {
			tlBLL = new TheLoaiBLL(Properties.Settings.Default.ConnectionStringUser);
            grdTheLoai.DataSource = tlBLL.getAllData();
        }

        private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            try
            {
                ///get id cua bang the loai
                int r = (Int32)gridView1.GetFocusedRowCellValue("MaLoai");
                DAL_NhaSach.TheLoai tl = (DAL_NhaSach.TheLoai)tlBLL.findObjects(r);
                lblMa.Text = tl.MaLoai.ToString();
                txtTen.Text = tl.TenLoai;
            }
            catch { }
        }

        private void xoáToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult r = XtraMessageBox.Show("Bạn có chắc chắn muốn xoá các thể loại đã chọn?", "Cảnh báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (r == DialogResult.Yes)
            {
                ArrayList id_lst = getRowsID();
                if (id_lst.Count != 0)
                {
                    try
                    {
                        foreach (int i in id_lst)
                        {
                            tlBLL.deleteObject(i);
                        }
                        XtraMessageBox.Show("Xoá thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        grdTheLoai.DataSource = tlBLL.getAllData();
                    }
                    catch (Exception)
                    {
                        XtraMessageBox.Show("Xoá không thành công", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    XtraMessageBox.Show("Chưa chọn phần tử để xoá");
                }
            }
        }

        public ArrayList getRowsID()
        {
            int[] lst_rows = gridView1.GetSelectedRows();
            ArrayList id_lst = new ArrayList();
            foreach (int i in lst_rows)
            {
                int id = (Int32)gridView1.GetRowCellValue(i, "MaLoai");
                id_lst.Add(id);
            }
            return id_lst;
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            if (btnThem.Text.Equals("Thêm Mớ&i"))
            {
                frmThemTL themTL = new frmThemTL();
                DialogResult r = themTL.ShowDialog();
                if (r == DialogResult.OK)
                {
                    grdTheLoai.DataSource = tlBLL.getAllData();
                }
            }
            else
            {
                DialogResult r = XtraMessageBox.Show("Bạn có chắc chắn muốn cập nhật thể loại này không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (r == DialogResult.Yes)
                {
                    DAL_NhaSach.TheLoai tl = new DAL_NhaSach.TheLoai();
                    tl.MaLoai = int.Parse(lblMa.Text);
                    tl.TenLoai = txtTen.Text;
                    if (tlBLL.updateObject(tl))
                    {
                        XtraMessageBox.Show("Cập nhật thành công thể loại có mã là: " + lblMa.Text, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        grdTheLoai.DataSource = tlBLL.getAllData();
                        changeStateUpdate(false);
                    }
                    else
                    {
                        XtraMessageBox.Show("Cập nhật không thành công", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }

        private void sửaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //btnThem.Text = "Cập Nhật";
            //grdTheLoai.Enabled = false;
            //txtTen.Enabled = true;
            //btnHuy.Visible = true;
            changeStateUpdate(true);
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            //txtTen.Enabled = false;
            //grdTheLoai.Enabled = true;
            //btnThem.Text = "Thêm";
            //btnHuy.Visible = false;
            changeStateUpdate(false);
        }

        /// <summary>
        /// Chuyển trạng thái cập nhật
        /// </summary>
        /// <param name="state">trạng thái</param>
        private void changeStateUpdate(bool state)
        {
            if (!state)
            {
                txtTen.Enabled = false;
                grdTheLoai.Enabled = true;
                btnThem.Text = "Thêm Mớ&i";
                btnHuy.Visible = false;
            }
            else
            {
                btnThem.Text = "Cập Nhật";
                grdTheLoai.Enabled = false;
                txtTen.Enabled = true;
                btnHuy.Visible = true;
            }
        }

        private void frmTheLoai_FormClosing(object sender, FormClosingEventArgs e)
        {
            frmMainNS.isTheLoai = false;
        }
    }
}